home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
edit
/
jed096_1.zip
/
SLANG
/
CHANGES.TXT
next >
Wrap
Text File
|
1994-04-26
|
3KB
|
93 lines
changes since 0.98:
* matrix package added. Currently only matrix multiplication and addition
is supported. More functions will be added (determinants, inverse, etc..)
This support is provided by the `init_SLmatrix ()' call. This support
provides the following S-Lang intrinsics:
matrix_multiply, matrix_add
* New S-Lang core intrinsic:
copy_array : copys the contents of one array to another
changes since 0.97:
* Double precision floating point supported.
Use the -DFLOAT_TYPE -DUSE_DOUBLE compiler flags to enable this.
Note that S-Lang does not support single precision and double precision
floating point number SIMULTANEOUSLY. You must choose one or the other
and stick with it!
* Byte compiling is now more than simple preprocessing. This results in
about a 20% decrease in loading time. This also means that if you
rebuild your application, you MUST re-bytecompile.
* New syntax added: Consider a function f that returns multiple values.
Then to assign these values to, say var_1, and var_2, simply write:
(var_1, var_2) = f ();
This is an alternative to:
f (); =var_2; =var_1;
Changes since 0.96:
It is now possible to use short circuit boolean evaluation of logical
expressions is the `orelse' and `andelse' constructs. Previously, these
constructs were only available at the infix level. The new syntax looks
like (example taken from JED's rmail.sl):
if (orelse
{re_bsearch("^\\CFrom:.*<\\(.+\\)>");}
{re_bsearch("^\\CReply-To: *\\([^ ]+\\) *");}
{re_bsearch("^\\CFrom:.*<\\(.+\\)>");}
{re_bsearch("^\\CFrom: *\\([^ ]+\\) *");}
{re_bsearch("^\\cFrom +\\([^ ]+\\) *");}
)
{
from = rmail_complex_get_from(from);
}
Modified some of the array code to use handles to arrays instead of actual
arrays. This adds alot more protection for the use of arrays. The
downside is that there is a limit on the number of active arrays. This
limit has been set to a default value ot 256. An ``active'' array is an
array that has been created but not freed.
Fixed a parse error that occurred when an `if' statement imediately follow
the `:' in a switch statement.
putenv intrinsic added.
EXIT_BLOCK: if an exit block is declared, it is called just before the
function returns to its caller.
It is now possible to perform assignments in variable declaration
statements, e.g.,
variable i = 0, imax = 10, n = strlen (name);
Condition compilation of S-Lang source possible. See .sl files in the jed
distribution.
A bug which prevent assignment to a global C floating point variable was
fixed.
Changes to `calc':
`apropos' function added to calc.sl. For example, `apropos("str")'
creates a list of all intrinsic functions that contain the substring
"str" (strcmp, strcat, etc...)
Command line arguments are now loaded as S-Lang source files. This makes
it possible to create a Unix executable such as:
#! /usr/local/bin/calc
define hello_world () { print ("hello world"); }
loop (10) hello_world ();
quit ();